//流: stream 瀑布流水
//传递数据或者是读取写入文件的时候可以通过流的方式来处理
//提高性能
//内存爆仓 内存溢出
//流  可以把大文件拆分成小文件(64k)  然后一次读取写入 来提高性能
//性能提高 操作数据的事件会变长
//读取文件

const fs = require("fs");
// let b = Buffer.alloc(64 * 1024);
// try {
//   fs.writeFileSync("64k.txt", b);
// } catch (err) {
//   console.log(err);
// }
// //直接一次性把65k内容放在内存 然后显示
// let res = fs.readFileSync("./65k.txt");
// console.log(res);

//通过流的方式读取 文件
//第一步: 创建一个可读流
// let rs = fs.createReadStream("./64k.txt");
//第二步 监听流的变化
//on 类似 addEventListener; 事件监听
//chunk:小块
// 监听流的事件是data事件
// let count = 0;
// rs.on("data", (chunk) => {
//   //   console.log(chunk);
//   count++;
// });

// rs.on("end", function () {
//   console.log(count);
// });
//流传递完毕之后的事件 end事件

//通过流的方式读取6.txt文件
//可以通过字符串拼接的形式把所有的chunk链接在一起
let rs = fs.createReadStream("./6.txt");
let str = "";
rs.on("data", (chunk) => {
  //   console.log(chunk.toString());
  str += chunk;
});

rs.on("end", () => {
  console.log(str);
});

//可以利用stream实现文件的赋值
// let rs = fs.createReadStream("./6.txt");
// let ws = fs.createWriteStream("./8.txt");
// //pipe管道  导出
// rs.pipe(ws);
